#!/usr/bin/python3
# -*-coding:utf-8 -*-
'''

class Person:
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

    def can(self):
        print(f'{self.name}可以吃饭')

    # 析构函数，删除实例对象，
    # 顾名思义就是删除下面的实例对象再次输入就没有输出结果会报错。

    def __del__(self):
        # del删除之后就会执行
        print(f'{self.name}被销毁了')


ca = Person('caca', 18, '男')
ha = Person('haha', 19, '女')

'''

class Person:
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

    def can(self):
        print(f'{self.name}可以吃饭')

    # 析构函数，删除实例对象，
    # 顾名思义就是删除下面的实例对象再次输入就没有输出结果。

    def __del__(self):
        # del删除之后就会执行
        print(f'{self.name}被销毁了')


ca = Person('caca', 18, '男')
ha = Person('haha', 19, '女')


class Chinese(Person):
    # 通过这样的表示可以继承上面写过的类
    # 因此之前写过的方法都可以使用
    # 因此实例化的时候也要传入对应参数
    def can(self):
        print('中国人喜欢故事')  # 虽然两个can是相同的，这里是就近原则
        # 主类里没有就去副类里找
        # Person.can(self)
        super().can()


mm = Chinese('mumu', '21', '男')


class Sichuan(Person):
    def can(self):
        print('四川人喜欢吃辣')
        super().can()


class Erzhe(Chinese, Sichuan):  # 先自己你然后Chinese，然后Chinese、继承后面Sichuan然后又继承Person**
    def can(self):
        print('二者喜欢吃豆腐')
        super().can()


ta = Erzhe('haha', 19, '女')
# 查看继承顺序：Erzhe.mro()